package cminus.graph;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.LinkedList;
import java.util.Queue;

import cminus.Compiler;
import cminus.EditorFrame;
import cminus.ast.ASTNode;

public class Test {
	//获取画图实例
    private PrintGraphics pg = new PrintGraphics();
  //初始化画布，宽度为576px，则长度为5760px
    //获取字体实例
    private FontProperty fp = new FontProperty();
    public static int  laynum[]=new int[100];
    
/*	public static void main(String[] args){
		Test t=new Test();
	    t.pg.initBuff(10000);

	    
	    //初始化字体，黑体，24号
	    t.fp.setF(false, false, false, false, 9, ""); 
	    double x = 5000,y = 20;
	 //   String fileName = "1.txt";
	    EditorFrame ef=new EditorFrame();
	    FileInputStream inFile = null;
		try {
			inFile = new FileInputStream(ef.fileName);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Compiler compiler = new Compiler();
		compiler.setSource(inFile);
		try {
			compiler.compile();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    ASTNode ast = compiler.getAbstractSyntaxTree();
	    System.out.println("语法粉色系"+ast.getChildrenNum() );
	    layer l = new layer(); 
	    l.setLayer(ast);
	    System.out.println("语法粉色系"+ast.getName());
	   l.setLayerNum(ast);
	    Juli.everynodecoutjuli(ast);
	    ast.setX(x);
		ast.setY(y);
		System.out.print(ast.getX());
		if(ast.getChildIP(0)!=null)
		System.out.println("layer"+ast.getChildIP(0).getLayer()+"juli"+ast.getChildIP(0).getJuli() );	
	    t.drawUnit(x,y,ast);
	    
	    //显示图像窗口
	    t.pg.printShow();

    }*/
	public Test()
	{
		 this.pg.initBuff(10000);

		    
		    //初始化字体，黑体，24号
		    this.fp.setF(false, false, false, false, 9, ""); 
		    double x = 5000,y = 20;
		 //   String fileName = "1.txt";
		    EditorFrame ef=new EditorFrame();
		    FileInputStream inFile = null;
			try {
				inFile = new FileInputStream(ef.fileName);
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			Compiler compiler = new Compiler();
			compiler.setSource(inFile);
			try {
				compiler.compile();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		    ASTNode ast = compiler.getAbstractSyntaxTree();
		    System.out.println("语法粉色系"+ast.getChildrenNum() );
		    layer l = new layer(); 
		    l.setLayer(ast);
		    System.out.println("语法粉色系"+ast.getName());
		   l.setLayerNum(ast);
		    Juli.everynodecoutjuli(ast);
		    ast.setX(x);
			ast.setY(y);
			System.out.print(ast.getX());
			if(ast.getChildIP(0)!=null)
			System.out.println("layer"+ast.getChildIP(0).getLayer()+"juli"+ast.getChildIP(0).getJuli() );	
		    this.drawUnit(x,y,ast);
		    
		    //显示图像窗口
		    this.pg.printShow();
	}
	
	
	private void drawUnit(double Cx,double Cy,ASTNode root){
		double h = 35.0;
	    double w = (root.getName().length() * 6.0) + 10.0;
	    double x0 = Cx - w * 0.5;
	    double y0 = Cy - h * 0.5;
	    
	    pg.drawRectangle(x0+50, y0+16, w , h, 1.0);
	    pg.drawText(x0+54, y0+36, root.getName(), fp);
	    
	    System.out.println(root.getName());
	    Queue<ASTNode> q = new LinkedList<ASTNode>();
	    ASTNode tempNode=root;
	    ASTNode tempNode1=root;
	    if (tempNode.getVisiteddraw()==0) {
		    q.add(tempNode);
		    tempNode.setVisiteddraw(1);
}
		    while (!q.isEmpty()) 
		    {

		    tempNode = (ASTNode)q.remove();  
		    double	x=tempNode.getX();
		     double 	y=tempNode.getY();
		     if(tempNode.getChildrenNum()==1)
		     {
			     if(tempNode.getChildIP(0)!=null)
				    {
				    	tempNode1= tempNode.getChildIP(0);  
						  if (tempNode1.getVisiteddraw()==0) {
							    q.add(tempNode1);
							    tempNode1.setVisiteddraw(1);
							    tempNode.getChildIP(0).setX(x);
							    tempNode.getChildIP(0).setY(y+90);
						    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
							    w = ( tempNode.getChildIP(0).getName().length() * 6.0) + 10.0;
							    pg.drawRectangle(tempNode.getChildIP(0).getX()+6,tempNode.getChildIP(0).getY(), w , h, 1.0);
							 
							    System.out.println(tempNode.getChildIP(0).getName()+" juli"+tempNode.getChildIP(0).getJuli()+" cengshu="+tempNode.getChildIP(0).getLayer()+ " 1de x="+tempNode.getChildIP(0).getX()+" 1de y="+tempNode.getChildIP(0).getY() );

   pg.drawText(tempNode.getChildIP(0).getX()+12,tempNode.getChildIP(0).getY()+20,  tempNode.getChildIP(0).getName(), fp);
							    pg.drawLine(x+35, y+35,tempNode.getChildIP(0).getX()+tempNode.getChildIP(0).getName().length()*4, 

tempNode.getChildIP(0).getY(), 1.0);
				   }  	 
				   }else
				   {;}
		     }else if(tempNode.getChildrenNum()==2)
		     {
		    	 if(tempNode.getChildIP(0)!=null)
				    {
				    	tempNode1= tempNode.getChildIP(0);  
						  if (tempNode1.getVisiteddraw()==0) {
							    q.add(tempNode1);
							    tempNode1.setVisiteddraw(1);
							    tempNode.getChildIP(0).setX(x-tempNode.getChildIP(0).getJuli());
							    tempNode.getChildIP(0).setY(y+90);
						    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
							    w = ( tempNode.getChildIP(0).getName().length() * 6.0) + 10.0;
							    pg.drawRectangle(tempNode.getChildIP(0).getX()+6,tempNode.getChildIP(0).getY(), w , h, 1.0);
							    System.out.println(tempNode.getChildIP(0).getName()+" juli"+tempNode.getChildIP(0).getJuli()+" cengshu="+tempNode.getChildIP(0).getLayer()+ " 1de x="+tempNode.getChildIP(0).getX()+" 1de y="+tempNode.getChildIP(0).getY() );
							   
 pg.drawText(tempNode.getChildIP(0).getX()+12,tempNode.getChildIP(0).getY()+20,  tempNode.getChildIP(0).getName(), fp);
							    pg.drawLine(x+35, y+35,tempNode.getChildIP(0).getX()+tempNode.getChildIP(0).getName().length()*4, 

tempNode.getChildIP(0).getY(), 1.0);
				   }  	 
				   }else
				   {;}
			    if(tempNode.getChildIP(1)!=null)
			    {
			    	 tempNode1= tempNode.getChildIP(1);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(1).setX(x);
						    tempNode.getChildIP(1).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(1).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(1).getX(),tempNode.getChildIP(1).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(1).getName()+" juli"+tempNode.getChildIP(1).getJuli()+" cengshu="+tempNode.getChildIP(1).getLayer()+ " 2de x="+tempNode.getChildIP(1).getX()+" 2de y="+tempNode.getChildIP(1).getY() );
						 
   pg.drawText(tempNode.getChildIP(1).getX()+5,tempNode.getChildIP(1).getY()+20,  tempNode.getChildIP(1).getName(), fp);
						   // System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(1).getX()+tempNode.getChildIP(1).getName().length()*3.5, 

tempNode.getChildIP(1).getY(), 1.0);
					    	//drawUnit(Cx-200,Cy+63,node.getChild1());

			   }  	 
			   }else
			   {;}
		     }else if(tempNode.getChildrenNum()==3)
		     {
		    	 if(tempNode.getChildIP(0)!=null)
				    {
				    	tempNode1= tempNode.getChildIP(0);  
						  if (tempNode1.getVisiteddraw()==0) {
							    q.add(tempNode1);
							    tempNode1.setVisiteddraw(1);
							    tempNode.getChildIP(0).setX(x-tempNode.getChildIP(0).getJuli());
							    tempNode.getChildIP(0).setY(y+90);
						    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
							    w = ( tempNode.getChildIP(0).getName().length() *6.0) + 10.0;
							    pg.drawRectangle(tempNode.getChildIP(0).getX()+6,tempNode.getChildIP(0).getY(), w , h, 1.0);
							    System.out.println(tempNode.getChildIP(0).getName()+" juli"+tempNode.getChildIP(0).getJuli()+" cengshu="+tempNode.getChildIP(0).getLayer()+ " 1de x="+tempNode.getChildIP(0).getX()+" 1de y="+tempNode.getChildIP(0).getY() );
							
    pg.drawText(tempNode.getChildIP(0).getX()+12,tempNode.getChildIP(0).getY()+20,  tempNode.getChildIP(0).getName(), fp);
							    pg.drawLine(x+35, y+35,tempNode.getChildIP(0).getX()+tempNode.getChildIP(0).getName().length()*4, 

tempNode.getChildIP(0).getY(), 1.0);
				   }  	 
				   }else
				   {;}
			    if(tempNode.getChildIP(1)!=null)
			    {
			    	 tempNode1= tempNode.getChildIP(1);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(1).setX(x);
						    tempNode.getChildIP(1).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(1).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(1).getX(),tempNode.getChildIP(1).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(1).getName()+" juli"+tempNode.getChildIP(1).getJuli()+" cengshu="+tempNode.getChildIP(1).getLayer()+ " 2de x="+tempNode.getChildIP(1).getX()+" 2de y="+tempNode.getChildIP(1).getY() );
						   
 pg.drawText(tempNode.getChildIP(1).getX()+5,tempNode.getChildIP(1).getY()+20,  tempNode.getChildIP(1).getName(), fp);
						//    System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(1).getX()+tempNode.getChildIP(1).getName().length()*3.5, 

tempNode.getChildIP(1).getY(), 1.0);
					    	//drawUnit(Cx-200,Cy+63,node.getChild1());

			   }  	 
			   }else
			   {;}
			    
			    if(tempNode.getChildIP(2)!=null)
			    {
			    	tempNode1= tempNode.getChildIP(2);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(2).setX(x+tempNode.getChildIP(1).getJuli());
						    tempNode.getChildIP(2).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(2).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(2).getX(),tempNode.getChildIP(2).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(2).getName()+" juli"+tempNode.getChildIP(2).getJuli()+" cengshu="+tempNode.getChildIP(2).getLayer()+ " 3de x="+tempNode.getChildIP(2).getX()+" 3de y="+tempNode.getChildIP(2).getY() );
						   
 pg.drawText(tempNode.getChildIP(2).getX()+5,tempNode.getChildIP(2).getY()+20,  tempNode.getChildIP(2).getName(), fp);
						 //   System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(2).getX()+tempNode.getChildIP(2).getName().length()*3.5, 

tempNode.getChildIP(2).getY(), 1.0);
			   }  	 
			   }else
			   {;}
		     }else if(tempNode.getChildrenNum()==4)
		     {
		    	 if(tempNode.getChildIP(0)!=null)
				    {
				    	tempNode1= tempNode.getChildIP(0);  
						  if (tempNode1.getVisiteddraw()==0) {
							    q.add(tempNode1);
							    tempNode1.setVisiteddraw(1);
							    tempNode.getChildIP(0).setX(x-tempNode.getChildIP(0).getJuli()*2);
							    tempNode.getChildIP(0).setY(y+90);
						    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
							    w = ( tempNode.getChildIP(0).getName().length() * 6.0) + 10.0;
							    pg.drawRectangle(tempNode.getChildIP(0).getX()+6,tempNode.getChildIP(0).getY(), w , h, 1.0);
							    System.out.println(tempNode.getChildIP(0).getName()+" juli"+tempNode.getChildIP(0).getJuli()+" cengshu="+tempNode.getChildIP(0).getLayer()+ " 1de x="+tempNode.getChildIP(0).getX()+" 1de y="+tempNode.getChildIP(0).getY() );
							 
   pg.drawText(tempNode.getChildIP(0).getX()+12,tempNode.getChildIP(0).getY()+20,  tempNode.getChildIP(0).getName(), fp);
							    pg.drawLine(x+35, y+35,tempNode.getChildIP(0).getX()+tempNode.getChildIP(0).getName().length()*4, 

tempNode.getChildIP(0).getY(), 1.0);
				   }  	 
				   }else
				   {;}
			    if(tempNode.getChildIP(1)!=null)
			    {
			    	 tempNode1= tempNode.getChildIP(1);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(1).setX(x-tempNode.getChildIP(1).getJuli());
						    tempNode.getChildIP(1).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(1).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(1).getX(),tempNode.getChildIP(1).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(1).getName()+" juli"+tempNode.getChildIP(1).getJuli()+" cengshu="+tempNode.getChildIP(1).getLayer()+ " 2de x="+tempNode.getChildIP(1).getX()+" 2de y="+tempNode.getChildIP(1).getY() );
						 
   pg.drawText(tempNode.getChildIP(1).getX()+5,tempNode.getChildIP(1).getY()+20,  tempNode.getChildIP(1).getName(), fp);
						  //  System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(1).getX()+tempNode.getChildIP(1).getName().length()*3.5, 

tempNode.getChildIP(1).getY(), 1.0);
					    	//drawUnit(Cx-200,Cy+63,node.getChild1());

			   }  	 
			   }else
			   {;}
			    
			    if(tempNode.getChildIP(2)!=null)
			    {
			    	tempNode1= tempNode.getChildIP(2);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(2).setX(x+tempNode.getChildIP(3).getJuli());
						    tempNode.getChildIP(2).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(2).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(2).getX(),tempNode.getChildIP(2).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(2).getName()+" juli"+tempNode.getChildIP(2).getJuli()+" cengshu="+tempNode.getChildIP(2).getLayer()+ " 3de x="+tempNode.getChildIP(2).getX()+" 3de y="+tempNode.getChildIP(2).getY() );
						  
  pg.drawText(tempNode.getChildIP(2).getX()+5,tempNode.getChildIP(2).getY()+20,  tempNode.getChildIP(2).getName(), fp);
						   // System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(2).getX()+tempNode.getChildIP(2).getName().length()*3.5, 

tempNode.getChildIP(2).getY(), 1.0);
			   }  	 
			   }else
			   {;}
			    
			    if(tempNode.getChildIP(3)!=null)
			    {
			    	tempNode1= tempNode.getChildIP(3);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(3).setX(x+tempNode.getChildIP(3).getJuli()*2);
						    tempNode.getChildIP(3).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(3).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(3).getX(),tempNode.getChildIP(3).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(4).getName()+" juli"+tempNode.getChildIP(3).getJuli()+" cengshu="+tempNode.getChildIP(3).getLayer()+ " 4de x="+tempNode.getChildIP(3).getX()+" 4de y="+tempNode.getChildIP(3).getY() );
						  
  pg.drawText(tempNode.getChildIP(3).getX()+5,tempNode.getChildIP(3).getY()+20,  tempNode.getChildIP(3).getName(), fp);
						  //  System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(3).getX()+tempNode.getChildIP(3).getName().length()*3.5, 

tempNode.getChildIP(3).getY(), 1.0);
			   }  	 
			   }else
			   {;}  	 
		     }else if(tempNode.getChildrenNum()==5)
		     {
		    	 if(tempNode.getChildIP(0)!=null)
				    {
				    	tempNode1= tempNode.getChildIP(0);  
						  if (tempNode1.getVisiteddraw()==0) {
							    q.add(tempNode1);
							    tempNode1.setVisiteddraw(1);
							    tempNode.getChildIP(0).setX(x-tempNode.getChildIP(0).getJuli()*2);
							    tempNode.getChildIP(0).setY(y+90);
						    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
							    w = ( tempNode.getChildIP(0).getName().length() * 6.0) + 10.0;
							    pg.drawRectangle(tempNode.getChildIP(0).getX()+6,tempNode.getChildIP(0).getY(), w , h, 1.0);
							    System.out.println(tempNode.getChildIP(0).getName()+" juli"+tempNode.getChildIP(0).getJuli()+" cengshu="+tempNode.getChildIP(0).getLayer()+ " 1de x="+tempNode.getChildIP(0).getX()+" 1de y="+tempNode.getChildIP(0).getY() );
							  
  pg.drawText(tempNode.getChildIP(0).getX()+12,tempNode.getChildIP(0).getY()+20,  tempNode.getChildIP(0).getName(), fp);
							    pg.drawLine(x+35, y+35,tempNode.getChildIP(0).getX()+tempNode.getChildIP(0).getName().length()*4, 

tempNode.getChildIP(0).getY(), 1.0);
				   }  	 
				   }else
				   {;}
			    if(tempNode.getChildIP(1)!=null)
			    {
			    	 tempNode1= tempNode.getChildIP(1);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(1).setX(x-tempNode.getChildIP(1).getJuli());
						    tempNode.getChildIP(1).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(1).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(1).getX(),tempNode.getChildIP(1).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(1).getName()+" juli"+tempNode.getChildIP(1).getJuli()+" cengshu="+tempNode.getChildIP(1).getLayer()+ " 2de x="+tempNode.getChildIP(1).getX()+" 2de y="+tempNode.getChildIP(1).getY() );
	
					    pg.drawText(tempNode.getChildIP(1).getX()+5,tempNode.getChildIP(1).getY()+20,  tempNode.getChildIP(1).getName(), fp);
						 //   System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(1).getX()+tempNode.getChildIP(1).getName().length()*3.5, 

tempNode.getChildIP(1).getY(), 1.0);
					    	//drawUnit(Cx-200,Cy+63,node.getChild1());

			   }  	 
			   }else
			   {;}
			    
			    if(tempNode.getChildIP(2)!=null)
			    {
			    	tempNode1= tempNode.getChildIP(2);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(2).setX(x);
						    tempNode.getChildIP(2).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(2).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(2).getX(),tempNode.getChildIP(2).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(2).getName()+" juli"+tempNode.getChildIP(2).getJuli()+" cengshu="+tempNode.getChildIP(2).getLayer()+ " 3de x="+tempNode.getChildIP(2).getX()+" 3de y="+tempNode.getChildIP(2).getY() );
						  
  pg.drawText(tempNode.getChildIP(2).getX()+5,tempNode.getChildIP(2).getY()+20,  tempNode.getChildIP(2).getName(), fp);
						    System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(2).getX()+tempNode.getChildIP(2).getName().length()*3.5, 

tempNode.getChildIP(2).getY(), 1.0);
			   }  	 
			   }else
			   {;}
			    
			    if(tempNode.getChildIP(3)!=null)
			    {
			    	tempNode1= tempNode.getChildIP(3);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(3).setX(x+tempNode.getChildIP(3).getJuli());
						    tempNode.getChildIP(3).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(3).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(3).getX(),tempNode.getChildIP(3).getY(), w , h, 1.0);
						   
						    System.out.println(tempNode.getChildIP(4).getName()+" juli"+tempNode.getChildIP(3).getJuli()+" cengshu="+tempNode.getChildIP(3).getLayer()+ " 4de x="+tempNode.getChildIP(3).getX()+" 4de y="+tempNode.getChildIP(3).getY() );
 pg.drawText(tempNode.getChildIP(3).getX()+5,tempNode.getChildIP(3).getY()+20,  tempNode.getChildIP(3).getName(), fp);
						  //  System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(3).getX()+tempNode.getChildIP(3).getName().length()*3.5, 

tempNode.getChildIP(3).getY(), 1.0);
			   }  	 
			   }else
			   {;}  	 
			 
			    
			    if(tempNode.getChildIP(4)!=null)
			    {
			    	tempNode1= tempNode.getChildIP(4);  
					  if (tempNode1.getVisiteddraw()==0) {
						    q.add(tempNode1);
						    tempNode1.setVisiteddraw(1);
						    tempNode.getChildIP(4).setX(x+tempNode.getChildIP(4).getJuli()*2);
						    tempNode.getChildIP(4).setY(y+90);
					    //	pg.drawLine(Cx, Cy+13, Cx-200, Cy+50, 1.0);
						    w = ( tempNode.getChildIP(4).getName().length() * 6.0) + 10.0;
						    pg.drawRectangle(tempNode.getChildIP(4).getX(),tempNode.getChildIP(4).getY(), w , h, 1.0);
						    System.out.println(tempNode.getChildIP(4).getName()+" juli"+tempNode.getChildIP(4).getJuli()+" cengshu="+tempNode.getChildIP(4).getLayer()+ " 5de x="+tempNode.getChildIP(4).getX()+" 5de y="+tempNode.getChildIP(4).getY() );
						   
 pg.drawText(tempNode.getChildIP(4).getX()+5,tempNode.getChildIP(4).getY()+20,  tempNode.getChildIP(4).getName(), fp);
						 //   System.out.println(root.getName());
						    pg.drawLine(x+55, y+35,tempNode.getChildIP(4).getX()+tempNode.getChildIP(4).getName().length()*3.5, 

tempNode.getChildIP(4).getY(), 1.0);
			   }  	  
			   }else
			   {;}
			    
		     }
		     
		   
	}
}}
